#include<stdio.h>
#include<time.h>
#include<sys/time.h>


void nowtime_us()
{
    printf("---------------------------struct timeval----------------------------------------\n"); 
    printf("[time(NULL)]    :    %ld\n", time(NULL)); //当前时间(自1970年1月1日(00:00:00 GMT)以来的秒数)
    struct timeval us; //包含秒和微妙(精度可达微妙)，自1970年1月1日(00:00:00 GMT)以来的时间
    gettimeofday(&us,NULL); //返回当前时间, 第一个参数是时间，第二个参数是时区
    printf("gettimeofday: tv_sec=%ld, tv_usec=%ld\n", us.tv_sec, us.tv_usec);
    
    struct tm t;
    char date_time[64];
	//格式化日期时间，保存到date_time
	//localtime_r将时间戳转为日历格式，线程安全
    strftime(date_time, sizeof(date_time), "%Y-%m-%d %H:%M:%S", localtime_r(&us.tv_sec, &t));
    printf("gettimeofday: date_time=%s, tv_usec=%ld\n", date_time, us.tv_usec);
}

int main(int argc, char* argv[])
{
    nowtime_us();
    printf("\n");
    return 0;
}
